#ifndef CXXOMFORT_CXXOLITERALS_AFFIX_COMPLEX_HPP
#define CXXOMFORT_CXXOLITERALS_AFFIX_COMPLEX_HPP

#include <cxxomfort/base.hpp>
#include "../literals.hpp"
#include <ccomplex>

namespace cxxomfort { namespace library { namespace complex {
namespace literals {

CXXO_CONSTEXPR const struct compli_t
: public cxxomfort::literals::impl::affix_definition3<std::complex<double>, compli_t> 
//, public cxxomfort::literals::impl::affix_definition2<std::complex<double>, compli_t> 
{
	CXXO_CONSTEXPR std::complex<double> operator() (long double v) const {
		return std::complex<double>(0.0, v);
	}
} i;


using ::cxxomfort::literals::operator|;

#if (CXXOMFORT_CXX_STD >= 2011)

constexpr inline std::complex<double> operator"" _i (long double v) {
	return std::complex<double>(0, v);
}
constexpr inline std::complex<double> operator"" _i (unsigned long long v) {
	return std::complex<double>(0, v);
}


#endif


} // literals
} } }

#endif
